/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package consumo.face.cadastro;

import consumo.entity.Feriados;
import consumo.face.BaseCDIBean;
import consumo.session.FeriadoSession;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.inject.Inject;

/**
 *
 * @author Carlos Taschetto
 */

@ManagedBean
@ViewScoped
public class FeriadoFace extends BaseCDIBean<Feriados> {

    private static final long serialVersionUID = 1L;
    
    @Inject
    private FeriadoSession bean;
    
    private List<Feriados> lista;
    private boolean isNew;


    @PostConstruct
    protected void init(){
        System.out.println("init();");
        atribuiEstadoInicial();
    }

    private void atribuiEstadoInicial(){
        lista = null;
        setSelectedBean(new Feriados());
        System.out.println("estado inicial!!!!!");
    }

    
    /**
     * inicializa uma nova concessionária a ser gravada
     */
    public void doCreate(){
        setIsNew(true);   
        setSelectedBean(new Feriados());
    }
    /**
     * Salva a concessionária
     */
    private void doFinishCreate(){
        bean.save(getSelectedBean());
        lista = bean.getAll();
    }

    /**
     * Edita uma feriado
     */
    private void doEditConce(){
        bean.setFeriados(getSelectedBean());
        lista = bean.getAll();
    }
    /**
     * Verifica se é uma nova inserção ou uma alteração
     */
    public void doSave(){
        if(isIsNew())
            doFinishCreate();
        else doEditConce();

        //setSelectedBean(null);
    }


    public List<Feriados> getLista() {
        if(lista==null){
            lista = bean.getAll();
        }
        return lista;
    }

    public void setLista(List<Feriados> lista) {
        this.lista = lista;
    }

    public void doRemove(){
        bean.removeFeriados(getSelectedBean());
        setLista(bean.getAll());
    }

    public boolean isIsNew() {
        return isNew;
    }

    public void setIsNew(boolean isNew) {
        this.isNew = isNew;
    }

    public void resetIsNew(){
        this.isNew = false;
    }
}
